<?php
class Admin_Model_User extends Application_Model_Db_Db
{
	public function getAllUsers() {
		$sql = "SELECT
					`user`.`id`,
					`user`.`email`,
					`user`.`last_visit`,
					`role`.`role`
				FROM `user`
				INNER JOIN `user_role`
					ON `user`.`id` = `user_role`.`user_id`
				INNER JOIN `role`
					ON `user_role`.`role_id` = `role`.`id`";
		return $this->_db->fetchAll($sql);
	}

	public function addUser($data) {
		$this->_db->insert('user', $data);
		return $this->_db->lastInsertId();
	}

	public function bindUserToRole($userId, $roleId) {
		$this->_db->insert(
			'user_role',
			array(
				'user_id' => $userId,
				'role_id' => $roleId
			)
		);
	}

	public function getUser($userId) {
		$sql = "SELECT	
					`user`.`id`,
					`user`.`email`,
					`user_role`.`role_id`
				FROM `user`
				INNER JOIN `user_role`
					ON `user`.`id` = `user_role`.`user_id`
				WHERE `user`.`id` = ?";
		return $this->_db->fetchRow($sql, $userId);
	}

	public function updateUser($userId, $data) {
		$this->_db->update('user', $data, 'id = ' . $userId);
	}

	public function generatePassword() {
		return substr(str_shuffle(strtolower(sha1(rand() . time() . "dsgs3%42@#3a243%3w"))),0, 10);
	}

	public function sendEmail($emailRecipient, $password) {
		$message  = "Привет!<br />";
		$message .= "<b>Email для входа:</b> {$emailRecipient}<br />";
		$message .= "<b>Пароль для входа:</b> {$password}<hr><br />";
		$message .= 'Авторизироваться можно по ссылке: <a href="electrofak.com.ua/login">Авторизация</a><br />';
		$message .= 'Если вы уже авторизированы, то вход в административную часть сайта ';
		$message .= 'можно совершить пройдя по <a href="electrofak.com.ua/admin">этой</a> ссылке<hr><br />';
		$message .= 'В случае возникновения каких либо вопросов - пишите на email bogdansolomykin@gmail.com<br />';
		$message .= 'Спасибо!';

		$mail = new Zend_Mail('UTF-8');
		$mail->setBodyHtml($message);
		$mail->setFrom('bogdansolomykin@gmail.com');
		$mail->addTo($emailRecipient);
		$mail->setSubject('Создание аккаунта на electrofak.com.ua');
		$mail->send();
	}

	public function deleteUser($userId) {
		$this->_db->delete('user', 'id = ' . $userId);
	}

	public function deleteBindUserRole($userId) {		
		$this->_db->delete('user_role', 'user_id = ' . $userId);			
	}
}